// 引入backtop样式
import './backtop.css';
// 引入iconfont样式
import 'icons/iconfont.css';
// 从utils中引入Scroll类
import Scroll from 'utils';
const CHANGED_CLASS_NAME = 'backtop-hidden';

class Backtop {
    constructor(el, critical_point, scrollContainer, eventEl = scrollContainer) {
        this.el = el;
        this.scrollContainer = scrollContainer;
        this.bindEvent();
        // 创建新的Scroll类，options参数中的change属性为调用Backtop类的remove方法；reset属性为调用Backtop类的add方法
        new Scroll(critical_point, scrollContainer, eventEl, {
            change: () => { this.remove() },
            reset: () => { this.add() },
        })
    }
    bindEvent() {
        // 给el属性添加touchend事件，将scrollContainer属性移动到scroll为0的位置
        this.el.addEventListener('touchend', () => {
            this.scrollContainer.scrollTo({ top: 0, behavior: 'smooth' });
        })
    }
    // remove方法，给el属性移除CHANGED_CLASS_NAME class名
    remove() {
        this.el.classList.remove(CHANGED_CLASS_NAME);
    }
    // add方法，给el属性添加CHANGED_CLASS_NAME class名
    add() {
        this.el.classList.add(CHANGED_CLASS_NAME);
    }
}
// 引出Backtop类
export default Backtop;